Perform a 3D inverse Fast Fourier Transform on a signal
This function takes a signal and performs a inverse fast Fourier Transform using the specified method. The available methods are:
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | DIMENSION(:, :, :) | :: | signal | ||
character(len=*), | intent(in) | :: | method | |||
integer, | intent(in), | optional | :: | threads |
FUNCTION IFFT_3D(signal, method, threads) RESULT(result) COMPLEX(dp), DIMENSION(:, :, :), INTENT(INOUT) :: signal CHARACTER(*), INTENT(IN) :: method INTEGER, OPTIONAL, INTENT(IN) :: threads COMPLEX(dp), DIMENSION(SIZE(signal, 1), SIZE(signal, 2), SIZE(signal, 3)) :: result IF(method == "FFTW_IFFT_3D" .AND. .NOT. PRESENT(threads))THEN result = FFTW_IFFT_3D(signal) ELSE IF (method == "IFFTW_IFFT_3D" .AND. PRESENT(threads))THEN result = FFTW_IFFT_3D_threads(signal, threads) ELSE STOP "ERROR : Wrong method for IFFT_1D" END IF END FUNCTION IFFT_3D